Skip to content

Conversation

@hlein
Copy link

@hlein hlein commented Dec 18, 2019

When -Werror=format-truncation is enabled, various warnings break the
build like:

[Compiling library-trans-ip/C_TransIP.cpp]
library-trans-ip/C_TransIP.cpp: In member function 'void C_TransIP::analyze_optional_init_string(char*)':
library-trans-ip/C_TransIP.cpp:676:6: error: '%s' directive output may be truncated writing up to 254 bytes into a region of size 56 [-Werror=format-truncation=]
void C_TransIP::analyze_optional_init_string(char P_buf) {
^~~~~~~~~
library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 46 and 300 bytes into a destination of size 100
snprintf(L_msg, 100, (char
)(m), (P1)) ; \

library-trans-ip/C_TransIP.cpp:710:9: note: in expansion of macro 'LOG_ALL_P1'
       LOG_ALL_P1("Unknown parameter value for close-wait-ms: [%s]", L_tmp);
       ^~~~~~~~~~
library-trans-ip/C_TransIP.cpp: In member function 'int C_TransIP::extract_ip_addr(T_pIpAddr)':
library-trans-ip/C_TransIP.cpp:846:5: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 84 [-Werror=format-truncation=]
int C_TransIP::extract_ip_addr(T_pIpAddr P_pIpAddr) {
   ^~~~~~~~~
library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 18 and 1041 bytes into a destination of size 100
...
cc1plus: all warnings being treated as errors
make[1]: *** [.../seagull/trunk/src/work-1.8.3/dep-libtrans_ip.so.mk:55: .../seagull/trunk/src/work-1.8.3/C_TransIP.o] Error 1

The longest string being snprintf'ed is up to just over 1000 bytes,
so this simply defines the error/log message size to 1200 bytes.

When -Werror=format-truncation is enabled, various warnings break the
build like:

[Compiling library-trans-ip/C_TransIP.cpp]
library-trans-ip/C_TransIP.cpp: In member function 'void C_TransIP::analyze_optional_init_string(char*)':
library-trans-ip/C_TransIP.cpp:676:6: error: '%s' directive output may be truncated writing up to 254 bytes into a region of size 56 [-Werror=format-truncation=]
 void C_TransIP::analyze_optional_init_string(char *P_buf) {
      ^~~~~~~~~
library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 46 and 300 bytes into a destination of size 100
  snprintf(L_msg, 100, (char*)(m), (P1)) ; \
  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
library-trans-ip/C_TransIP.cpp:710:9: note: in expansion of macro 'LOG_ALL_P1'
         LOG_ALL_P1("Unknown parameter value for close-wait-ms: [%s]", L_tmp);
         ^~~~~~~~~~
library-trans-ip/C_TransIP.cpp: In member function 'int C_TransIP::extract_ip_addr(T_pIpAddr)':
library-trans-ip/C_TransIP.cpp:846:5: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 84 [-Werror=format-truncation=]
 int C_TransIP::extract_ip_addr(T_pIpAddr P_pIpAddr) {
     ^~~~~~~~~
library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 18 and 1041 bytes into a destination of size 100
...
cc1plus: all warnings being treated as errors
make[1]: *** [.../seagull/trunk/src/work-1.8.3/dep-libtrans_ip.so.mk:55: .../seagull/trunk/src/work-1.8.3/C_TransIP.o] Error 1

The longest string being snprintf'ed is up to just over 1000 bytes,
so this simply defines the error/log message size to 1200 bytes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant